package interfaz;

import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.awt.event.FocusListener;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableModel;

import sistemaCursos.Curso;
import sistemaUsuarios.Tecnico;
import javax.swing.JList;

public class InterfazDatosCurso extends JPanel implements IVista {
	private JLabel lblNombre;
	private JTextField textFieldNombre;
	private JLabel lblFechaInicio;
	private JTextField textFieldFechaI;
	private JLabel lblYyyymmdd;
	private JLabel lblFechaFin;
	private JTextField textFieldFechaF;
	private JLabel lblYyyymmdd_1;
	private JLabel lblProfesor;
	private JTextField textFieldProfesor;
	private JLabel lblEspecialidad;
	private JTextField textFieldEspecialidad;
	private JLabel lblAlumnos;
	private JLabel lblNuevoAlumno;
	private JTextField textFieldNuevoAlumno;
	private JButton btnAceptaractualizar;
	private JButton btnBorrar;
	private JButton btnActualizar;
	
	private JTable tableAlumnos;

		/**
		 * Create the panel.
		 */
		public InterfazDatosCurso() {
			setBorder((Border) new LineBorder(new Color(0, 0, 0), 2));
			GridBagLayout gridBagLayout = new GridBagLayout();
			gridBagLayout.columnWidths = new int[]{0, 100, 120, 0, 43, 0, 0};
			gridBagLayout.rowHeights = new int[]{0, 20, 0, 32, 0, 0, 0, 0, 0, 0, 0, 31, 17, 0, 0, 20, 0, 20, 0, 0, 0};
			gridBagLayout.columnWeights = new double[]{1.0, 1.0, 1.0, 1.0, 1.0, 1.0, Double.MIN_VALUE};
			gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, Double.MIN_VALUE};
			setLayout(gridBagLayout);
			
			lblNombre = new JLabel("Nombre");
			GridBagConstraints gbc_lblNombre = new GridBagConstraints();
			gbc_lblNombre.anchor = GridBagConstraints.EAST;
			gbc_lblNombre.insets = new Insets(0, 0, 5, 5);
			gbc_lblNombre.gridx = 1;
			gbc_lblNombre.gridy = 1;
			add(lblNombre, gbc_lblNombre);
			
			textFieldNombre = new JTextField();
			GridBagConstraints gbc_textFieldNombre = new GridBagConstraints();
			gbc_textFieldNombre.insets = new Insets(0, 0, 5, 5);
			gbc_textFieldNombre.fill = GridBagConstraints.HORIZONTAL;
			gbc_textFieldNombre.gridx = 2;
			gbc_textFieldNombre.gridy = 1;
			add(textFieldNombre, gbc_textFieldNombre);
			textFieldNombre.setColumns(10);
			
			lblFechaInicio = new JLabel("Fecha Inicio");
			GridBagConstraints gbc_lblFechaInicio = new GridBagConstraints();
			gbc_lblFechaInicio.anchor = GridBagConstraints.EAST;
			gbc_lblFechaInicio.insets = new Insets(0, 0, 5, 5);
			gbc_lblFechaInicio.gridx = 1;
			gbc_lblFechaInicio.gridy = 2;
			add(lblFechaInicio, gbc_lblFechaInicio);
			
			textFieldFechaI = new JTextField();
			GridBagConstraints gbc_textFieldFechaI = new GridBagConstraints();
			gbc_textFieldFechaI.insets = new Insets(0, 0, 5, 5);
			gbc_textFieldFechaI.fill = GridBagConstraints.HORIZONTAL;
			gbc_textFieldFechaI.gridx = 2;
			gbc_textFieldFechaI.gridy = 2;
			add(textFieldFechaI, gbc_textFieldFechaI);
			textFieldFechaI.setColumns(10);
			
			lblYyyymmdd = new JLabel("yyyy-MM-dd");
			GridBagConstraints gbc_lblYyyymmdd = new GridBagConstraints();
			gbc_lblYyyymmdd.insets = new Insets(0, 0, 5, 5);
			gbc_lblYyyymmdd.gridx = 4;
			gbc_lblYyyymmdd.gridy = 2;
			add(lblYyyymmdd, gbc_lblYyyymmdd);
			
			lblFechaFin = new JLabel("Fecha Fin");
			GridBagConstraints gbc_lblFechaFin = new GridBagConstraints();
			gbc_lblFechaFin.anchor = GridBagConstraints.EAST;
			gbc_lblFechaFin.insets = new Insets(0, 0, 5, 5);
			gbc_lblFechaFin.gridx = 1;
			gbc_lblFechaFin.gridy = 3;
			add(lblFechaFin, gbc_lblFechaFin);
			
			textFieldFechaF = new JTextField();
			GridBagConstraints gbc_textField = new GridBagConstraints();
			gbc_textField.insets = new Insets(0, 0, 5, 5);
			gbc_textField.fill = GridBagConstraints.HORIZONTAL;
			gbc_textField.gridx = 2;
			gbc_textField.gridy = 3;
			add(textFieldFechaF, gbc_textField);
			textFieldFechaF.setColumns(10);
			
			lblYyyymmdd_1 = new JLabel("yyyy-MM-dd");
			GridBagConstraints gbc_lblYyyymmdd_1 = new GridBagConstraints();
			gbc_lblYyyymmdd_1.insets = new Insets(0, 0, 5, 5);
			gbc_lblYyyymmdd_1.gridx = 4;
			gbc_lblYyyymmdd_1.gridy = 3;
			add(lblYyyymmdd_1, gbc_lblYyyymmdd_1);
			
			lblProfesor = new JLabel("Profesor");
			GridBagConstraints gbc_lblProfesor = new GridBagConstraints();
			gbc_lblProfesor.anchor = GridBagConstraints.EAST;
			gbc_lblProfesor.insets = new Insets(0, 0, 5, 5);
			gbc_lblProfesor.gridx = 1;
			gbc_lblProfesor.gridy = 4;
			add(lblProfesor, gbc_lblProfesor);
			
			textFieldProfesor = new JTextField();
			GridBagConstraints gbc_textField_1 = new GridBagConstraints();
			gbc_textField_1.insets = new Insets(0, 0, 5, 5);
			gbc_textField_1.fill = GridBagConstraints.HORIZONTAL;
			gbc_textField_1.gridx = 2;
			gbc_textField_1.gridy = 4;
			add(textFieldProfesor, gbc_textField_1);
			textFieldProfesor.setColumns(10);
			
			lblEspecialidad = new JLabel("Especialidad");
			GridBagConstraints gbc_lblEspecialidad = new GridBagConstraints();
			gbc_lblEspecialidad.anchor = GridBagConstraints.EAST;
			gbc_lblEspecialidad.insets = new Insets(0, 0, 5, 5);
			gbc_lblEspecialidad.gridx = 1;
			gbc_lblEspecialidad.gridy = 5;
			add(lblEspecialidad, gbc_lblEspecialidad);
			
			textFieldEspecialidad = new JTextField();
			GridBagConstraints gbc_textField_2 = new GridBagConstraints();
			gbc_textField_2.insets = new Insets(0, 0, 5, 5);
			gbc_textField_2.fill = GridBagConstraints.HORIZONTAL;
			gbc_textField_2.gridx = 2;
			gbc_textField_2.gridy = 5;
			add(textFieldEspecialidad, gbc_textField_2);
			textFieldEspecialidad.setColumns(10);
			
			lblAlumnos = new JLabel("Alumnos");
			GridBagConstraints gbc_lblAlumnos = new GridBagConstraints();
			gbc_lblAlumnos.insets = new Insets(0, 0, 5, 5);
			gbc_lblAlumnos.gridx = 2;
			gbc_lblAlumnos.gridy = 7;
			add(lblAlumnos, gbc_lblAlumnos);
			
			lblNuevoAlumno = new JLabel("Nuevo Alumno");
			GridBagConstraints gbc_lblNuevoAlumno = new GridBagConstraints();
			gbc_lblNuevoAlumno.anchor = GridBagConstraints.EAST;
			gbc_lblNuevoAlumno.insets = new Insets(0, 0, 5, 5);
			gbc_lblNuevoAlumno.gridx = 1;
			gbc_lblNuevoAlumno.gridy = 14;
			add(lblNuevoAlumno, gbc_lblNuevoAlumno);
			
			textFieldNuevoAlumno = new JTextField();
			GridBagConstraints gbc_textField_3 = new GridBagConstraints();
			gbc_textField_3.insets = new Insets(0, 0, 5, 5);
			gbc_textField_3.fill = GridBagConstraints.HORIZONTAL;
			gbc_textField_3.gridx = 2;
			gbc_textField_3.gridy = 14;
			add(textFieldNuevoAlumno, gbc_textField_3);
			textFieldNuevoAlumno.setColumns(10);
			
			btnActualizar = new JButton("Actualizar");
			GridBagConstraints gbc_btnActualizar = new GridBagConstraints();
			gbc_btnActualizar.insets = new Insets(0, 0, 5, 5);
			gbc_btnActualizar.gridx = 4;
			gbc_btnActualizar.gridy = 15;
			add(btnActualizar, gbc_btnActualizar);
			
			btnBorrar = new JButton("Borrar");
			GridBagConstraints gbc_btnBorrar = new GridBagConstraints();
			gbc_btnBorrar.insets = new Insets(0, 0, 5, 5);
			gbc_btnBorrar.gridx = 1;
			gbc_btnBorrar.gridy = 17;
			add(btnBorrar, gbc_btnBorrar);
			
			btnAceptaractualizar = new JButton("Guardar nuevo Curso");
			GridBagConstraints gbc_btnAceptaractualizar = new GridBagConstraints();
			gbc_btnAceptaractualizar.insets = new Insets(0, 0, 5, 5);
			gbc_btnAceptaractualizar.gridx = 4;
			gbc_btnAceptaractualizar.gridy = 17;
			add(btnAceptaractualizar, gbc_btnAceptaractualizar);
			
			tableAlumnos = new JTable();

		}

		@Override
		public void update() {
			// TODO Auto-generated method stub
			this.invalidate();
			this.repaint();
			this.revalidate();
		}

		@Override
		public void SetVisible(boolean visible) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public void registerListener(ActionListener listener) {
			// TODO Auto-generated method stub
			btnAceptaractualizar.addActionListener(listener);
			btnActualizar.addActionListener(listener);
			btnBorrar.addActionListener(listener);
			/*textFieldNombre.addFocusListener((FocusListener) listener);
			textFieldEspecialidad.addFocusListener((FocusListener) listener);
			textFieldFechaI.addFocusListener((FocusListener) listener);
			textFieldFechaF.addFocusListener((FocusListener) listener);
			textFieldProfesor.addFocusListener((FocusListener) listener);
			textFieldNuevoAlumno.addFocusListener((FocusListener) listener);*/
		}

		public void populateTable(ArrayList<Tecnico> articulos){
			
			Object contenido[][] = new Object[articulos.size()+1][3];
			
			int contadorFilas = 1;
			Iterator<Tecnico> it = articulos.iterator();
			
			contenido[0][0] = "NOMBRE";
			contenido[0][1] = "APELLIDO";
			contenido[0][2] = "DNI";
			while(it.hasNext()){
				Tecnico art = it.next();
				contenido[contadorFilas][0] = art.getNombre();
				contenido[contadorFilas][1] = art.getApellido();
				contenido[contadorFilas][2] = art.getDni();
				
				contadorFilas++;
			}
			
			tableAlumnos.setModel(new DefaultTableModel(
					contenido,
					new String[] {
						"Nombre", "Apellido", "DNI"
					}
				));
			
			tableAlumnos.setBackground(Color.WHITE);
			GridBagConstraints gbc_table = new GridBagConstraints();
			gbc_table.gridwidth = 4;
			gbc_table.insets = new Insets(0, 0, 5, 5);
			gbc_table.fill = GridBagConstraints.BOTH;
			gbc_table.gridx = 1;
			gbc_table.gridy = 8;
			add(tableAlumnos, gbc_table);
		}

		public String getTextFieldNombre() {
			return textFieldNombre.getText();
		}

		public void setTextFieldNombre(String textFieldNombre) {
			this.textFieldNombre.setText(textFieldNombre);
		}

		public String getTextFieldFechaI() {
			return textFieldFechaI.getText();
		}

		public void setTextFieldFechaI(String textFieldFechaI) {
			this.textFieldFechaI.setText(textFieldFechaI);
		}

		public String getTextFieldFechaF() {
			return textFieldFechaF.getText();
		}

		public void setTextFieldFechaF(String textFieldFechaF) {
			this.textFieldFechaF.setText(textFieldFechaF);
		}

		public String getTextFieldProfesor() {
			/*String aux = textFieldProfesor.getText();
			if(aux.isEmpty()) 
				return -1;
			else{
			int d = Integer.parseInt(aux);
			return d;
			}*/
			return textFieldProfesor.getText();
		}

		public void setTextFieldProfesor(String i) {
			this.textFieldProfesor.setText( i);
		}

		public String getTextFieldEspecialidad() {
			return textFieldEspecialidad.getText();
		}

		public void setTextFieldEspecialidad(String textFieldEspecialidad) {
			this.textFieldEspecialidad.setText(textFieldEspecialidad);
		}

		public String getTextFieldNuevoAlumno() {
			/*String aux = textFieldNuevoAlumno.getText();
			if(aux.isEmpty()) 
				return -1;
			else{
			int d = Integer.parseInt(aux);
			return d;
			}*/
			return textFieldNuevoAlumno.getText();
		}

		public void setTextFieldNuevoAlumno(String textFieldNuevoAlumno) {
			this.textFieldNuevoAlumno.setText(textFieldNuevoAlumno);
		}

		
	
///////////////////////	
}
